// 页面白名单，不受拦截
const whiteList = [
    '/pages/login/index',
    '/pages/login/setServer'
]

function hasPermission(url) {
    // 获取本地缓存的登录信息
    let token = uni.getStorageSync('token');
    // 在白名单中或有登录判断条件可以直接跳转
    if (whiteList.includes(url.split('?')[0]) || token) {
        return true
    }
    return false
}

// 遍历给路由方法添加拦截器
let list = ["navigateTo", "redirectTo", "reLaunch", "switchTab"];
list.forEach(item => {
    // 页面跳转拦截器
    uni.addInterceptor(item, {
        // 页面跳转前进行拦截, invoke根据返回值进行判断是否继续执行跳转
        invoke(e) {
            if (!hasPermission(e.url)) {
                uni.showToast({
                    title: '您还未登录，请先登录',
                    icon: 'none'
                })
                console.log(e.url);
                uni.navigateTo({url: '/pages/login/index'})
                return false
            }
            return true
        },
        fail(err) { // 失败回调拦截
            console.log(err);
        },
    })

})
